{
    "title": "Example Dungeon",
    "startGold": 10000, // Base Starting Gold (added to the player's Starting Gold)
    "tileset": "mines", // tilesets: stone, mines, dungeon, prison, ash, ice, castle, jungle, desert
    "weatherEffectType": "Rain", // Rain, Ash, DustStorm, Snow (case sensitive)
    "route": [
        [ "A", "9" ], // From Entrance A to Portal 9
        [ "B", "8" ], // From Entrance B to Portal 8
        [ "C", "7" ], // From Entrance C to Portal 7
    ],
    "victoryCondition": "CollectGold", // Defense (Normal), CollectGold (Greed)
    "victoryParameters":  {"gold": 20000, "time": 600}, // Used with CollectGold victory condition
    "field": [ 
    // Tiles:
    // 0: Floor
    // 1: Wall
    // 2: Abyss
    // 5: Obstacle
    // @: Destroyable Wall
    // #: Destroyable Floor
    // >, <, ^, V: Door
    // }, {, M, W: Spiked Wall
    
    // A, AA, AAA: Entrances

    // 333
    // 393 : Large Portal
    // 333

    // 33
    // 39 : Small Portal

        "11111111111111111111111111111",
        "11100010000112222222222222211",
        "11100010000112222222222222211",
        "11100010000112222222222222211",
        "11100010000112222222222222211",
        "11100010000112222222222222211",
        "11110110000112222222222222211",
        "11110110000111111111111111111",
        "11A002225501WWW10000000013331",
        "11A00000000000000000@@00>3731",
        "11A002225501MMM10000000013331",
        "11111111111111111111000011111",
        "11B000006666000#####0000{1111",
        "11B00000600600000000000011111",
        "11111111611611111111000013811",
        "11C000006006000000000000>3311",
        "11111111611611101111010011111",
        "1111111161166110111101VV13331",
        "11111166611161111111110003931",
        "11111111111111111111111113331",
        "11111111111111111111111111111",
        
    ],
    "movingPlatforms": [
        {
            "row": 16,
            "col": 14,
            "routeH": [0, 0, 1, 1, 0, 0, -1, -1],
            "routeV": [1, 1, 0, 0, -1, -1, 0, 0],
            "isRouteLooped": true, // if false, the platform reverses its route when it reaches the last position.
            "moveSpeed": 0.15,
            "stopTime": 0,
            "terrain": [
                "1",
            ]
        },
        {
            "row": 15,
            "col": 21,
            "routeH": [0, 0, 0],
            "routeV": [1, 1, 1], // will move up three tiles
            "isRouteLooped": false, // and then move down three tiles
            "moveSpeed": 0.3,
            "stopTime": 3,
            "initialMoveDelay": 5,
            "terrain": [
                "10",
                "10"
            ]
        }
    ],
    "rails": [
        { "startRow": 2, "startCol": 6, "endRow": 2, "endCol": 12, "interval": 3.5 }, // Minecart track
        { "type": "Bison", "startRow": 3, "startCol": 15, "endRow": 3, "endCol": 20, "interval": 0.3, "duration": 5 }, // Bison track
    ],
    "decorations": [
        { "type": "Torch", "row": 6, "col": 8, "rotation": 270 }, // Decorative torch
        
        { "type": "Boulder", "row": 12, "col": 23, "rotation": 0 }, // Rotations: 0: Down, 90: Left, 180: Up, 270: Right

        { "type": "Totem", "row": 7, "col": 4, "rotation": 0, "totemType": "Haste" }, 
        // totemTypes: Haste, Rejuvenation, Emboldening, Stability, Immortality, Shielding

        { "type": "Treasure", "row": 9, "col": 21, "rotation": 0 }, // Treasure Chest

        { "type": "Orb", "row": 6, "col": 21, "rotation": 0 }, // Orb of Experience

        { "type": "DemonSquad", "row": 5, "col": 5, "count": 3 }, // setting "count" to six will spawn a Demon Lord.

        { "type": "Vault", "row": 18, "col": 8 }, // Vault & Tomb occupy 2x2 tiles. The position is anchored to the top-left corner.

        { "type": "Tomb", "row": 15, "col": 8, 
        "spawnerUnitType": "Warrior", 
        "spawnerRouteIndex": 0, 
        "spawnerInterval": 0.1, 
        "spawnerUnitCount": 50 
        },

        { "type": "Spawner", "row": 16, "col": 4, "rotation": 0, "spawnerUnitType": "Warrior", "spawnerRouteIndex": 0, "spawnerInterval": 3 },
        { "type": "Spawner", "row": 18, "col": 4, "rotation": 0, "spawnerUnitType": "Digger", "spawnerRouteIndex": 1, "spawnerInterval": 5 },
    ],
    "prebuiltTraps": [
        { "row": 0, "col": 0, "fieldIndex": 1, "type": "Dart", "tier": 0, "direction": "Right" }, 
        // fieldIndex: 0: the map itself, 1: the first movingPlatform, 2: the second movingPlatform and so on.
        { "row": 0, "col": 1, "fieldIndex": 2, "type": "Spike", "tier": 0, "direction": "Down" },
        { "row": 6, "col": 6, "fieldIndex": 0, "type": "Harpoon", "tier": 0, "direction": "Up" },
        // Complete list of the Trap types:
        // Spike, Push, Barricade, Wind, Grind, Bolt, Lightning, Dart, Inferno, Spring, Tar, Slot,
        // Spawner_Demon, Spawner_Necromancer, Spin, Harpoon, Harvester, Blackhole, Hex,
        // Teleporter, Bola, Chakram, Rocket, Shockwave
    ],
    "allowedUnitTypes": [
        "Peasant",
        "King",
        "Adventurer",
        "Warrior",
        "Knight",
        "Priest",
        "Thief",
        "Wizard",
        "Golem",
        "Copter",
        "Dwarf",
        "Marksman",
        "Warrior_Veteran",
        "Horseman",
        "Druid",
        "Journeyman",
        "Brute",
        "Drummer",
        "Bloon",
        "Midasman",
        "Digger",
        "BridgeSquad",
        "JungleWarrior",
        "Berserker",
        "Bandit",
        "MasterThief",
        "BlackKnight",
        "Vanguard",
        "HeavyArmor"
    ],
    "waves": [
        {
            "wave": 1, 
            "replaceGeneratedWave": false, // If set to true, procedurally generated units are discarded for this wave.
            "appendToGeneratedWave": true, // If set to true, units here are spawned at the end of the procedurally generated wave.
            "spawn": [
                { "interval": 0.2, "types": [ "Dwarf" ], "typeInterval": 0.1, "count": 3, "routes": [ 0 ] },
                { "interval": 2.0, "types": [ "Warrior", "Peasant" ], "typeInterval": 1.0, "count": 3, "routes": [ 0, 1 ] }
            ]
        },
        {
            "wave": 2,
            "replaceGeneratedWave": true,
            "appendToGeneratedWave": false,
            "spawn": [
                { "interval": 1, "types": [ "Vanguard" ], "typeInterval": 0.1, "count": 3, "routes": [ 0 ] }
            ]
        }
    ]
}